// app.js 服务器端脚本
//  加载工具包
var express = require('express');
var bodyparser = require('body-parser');
var multer = require('multer');
var fs = require('fs');

// 创建程序入口对象
var app = express();

// 使用中间件
app.use(bodyparser.urlencoded({extended:true}));
app.use(express.static('MyWebSite'));

//处理添加留言的请求
// 此处的回调函数，就是处理，接收到前端请求之后，所要干的事情
app.post('/addmessage',function(request,response){
    //1、获取客户端输入区域的文本内容
    var message = request.body.content;
    // 为了便于后续的操作，此处对留言内容进行格式处理(数组：元素和索引)
    // 每一条留言都转化成一个json对象，将这个json对象当作数组中的一个元素
    // 此处可以丰富留言内容，如：留言人姓名、留言时间、留言者头像等
    var messagejson = {
        content:message
    };

    //2、将内容写入本地文件,能够累加写入
    // 参数一：文件名；
    // 参数二：要写入的数据；
    // 参数三：回调函数.
    // 此处加一个逗号，是为了将每个留言隔开
    fs.appendFile('messages.txt',JSON.stringify(messagejson)+',',function(error){
        // 假如有错误
        if(error)
        {
            return error;
        }
        response.status(200).send('留言成功');
    });
});
// 处理显示留言的请求
app.get('/showmessages',function(request,response){
    // 读文件
    // 参数一：文件名；
    // 参数二，回调函数（小参数一：错误，小参数二：文件内容）
    fs.readFile('messages.txt',function(error,filedata){
        if(error){
            return error;
        }
        var content = filedata.toString();
        // 数据，我们希望以数组的形式传递给浏览器，首先，去掉文本内容最后一个逗号；然后，在文本内容的前后添加中括号（字面量创建数组的形式［元素1，元素2，元素3...］）
        // 控制数据格式
        //content.substr(0,content.length-1);//去掉文本内容最后一个逗号
        var finalContent = '['+ content.substr(0,content.length-1) +']';
        console.log(finalContent);
        response.status(200).send(finalContent);
    });
});

// 监听
app.listen(3000,function(){
    console.log('服务器启动了');
});